Consulta de Guías Docentes



Academic Year/course: 2022/23

625 - Bachelor's Degree in Industrial Processes' Data Engineering

29520 - Parallel Programming


Syllabus Information

Academic Year:
2022/23
Subject:
29520 - Parallel Programming
Faculty / School:
175 - Escuela Universitaria Politécnica de La Almunia
Degree:
625 - Bachelor's Degree in Industrial Processes' Data Engineering
ECTS:
6.0
Year:
2
Semester:
Second semester
Subject Type:
Compulsory
Module:
---

1. General information

1.1. Aims of the course

In this subject the student will learn to deal with the design of programs in which a set of processes must be synchronized, either through shared memory mechanisms or through communication networks, being able to reason about the correctness of the proposed solution.

These approaches and objectives are aligned with the following Sustainable Development Goals (SDGs) of the United Nations 2030 Agenda (https://www.un.org/sustainabledevelopment/es/), in such a way that the acquisition of the results of Learning the subject provides training and competence to contribute to some extent to its achievement:

  • Goal 7: Affordable and clean energy.
    • Target 7.3 By 2030, double the global rate of improvement in energy efficiency.

  • Goal 8: Decent work and economic growth.
    • Target 8.2 Achieve higher levels of economic productivity through diversification, technological upgrading and innovation, including by focusing on high value-added and labor-intensive sectors.

    • Target 8.4. Progressively improve, by 2030, the efficient production and consumption of global resources and seek to decouple economic growth from environmental degradation, in accordance with the 10-Year Framework of Programs on Sustainable Consumption and Production Patterns, starting with developed countries .

  • Objective 9: Industry, innovation and infrastructures.
    • Target 9.1: Develop reliable, sustainable, resilient and quality infrastructure, including regional and cross-border infrastructure, to support economic development and human well-being, with particular emphasis on affordable and equitable access for all.

    • Target 9.5 Increase scientific research and improve the technological capacity of the industrial sectors.

    • Target 9.c Significantly increase access to information and communications technology.

1.2. Context and importance of this course in the degree

Parallel Programming is a 2nd year course that follows the course "Data Structures and Algorithms" (2nd year, 1st semester).

It is a compulsory subject that is found within the Data Processing module, in the subject "Algorithms and Data", together with the subjects of "Programming" and "Data Structure and Algorithms".

1.3. Recommendations to take this course

The student who takes this subject must have a robust training in programming, being highly recommended to have passed the subject "Data Structures and Algorithms".

2. Learning goals

2.1. Competences

Upon passing the subject, the student will have acquired the following skills:

  • CB2 - That students know how to apply their knowledge to their work or vocation in a professional way and possess the competencies that are usually demonstrated through the development and defense of arguments and problem solving within their area of study.
  • CG03 - Apply techniques for the acquisition, management and treatment of data in Engineering.
  • CG05 - Solve technological problems that may arise in data engineering.
  • CT01 - Work cooperatively, assuming and respecting the role of the different team members.
  • CT05 - Communication of results effectively.
  • CT07 - Analyze and solve problems autonomously, adapt to unforeseen situations and make decisions.
  • CE01 - Design and implement algorithms in high-level programming languages, using current methodologies.
  • CE14 - Build the most appropriate data types and structures to solve a problem.

2.2. Learning goals

The student, to pass this course, must demonstrate the following results...

  • The student will finish with a deep understanding of the specific characteristics of concurrent and distributed systems.
  • She will know the problems generated by concurrent access to data and resources, as well as the conceptual and technological solutions that have been given to them.
  • She will know the characteristics of distributed systems, the challenges they pose and the solutions that have been proposed for them.
  • She will have notions of what real-time systems are, and event-based systems.
  • She will know tools for the design and programming of programs with concurrent and/or distributed features.

2.3. Importance of learning goals

This subject supposes a first contact with concurrent and distributed programming. For a Data Engineer, a solid foundation in these aspects is essential to be able to function in the industrial world.

3. Assessment (1st and 2nd call)

3.1. Assessment tasks (description of tasks, marking system and assessment criteria)

The evaluation process will include two types of action:

  • A continuous evaluation system, which will be carried out throughout the learning period.
  • A global assessment test, reflecting the achievement of learning results, at the end of the teaching period.

 

1-Continuous evaluation system.

Following the spirit of Bologna, regarding the degree of involvement and continued work of the student throughout the course, the evaluation of the subject considers the continuous evaluation system as the most appropriate to be in line with the guidelines set by the new framework from the EHEA.

The continuous evaluation system will have the following group of qualifying activities:

  • Works: The works will consist of practical exercises, solution to proposed problems, questionnaires, etc. The correctness and quality of the results will be assessed. These practices will be carried out in groups of a maximum of 20 students. The percentage with respect to the global mark of all these works will be 40%.
  • Assessment tests: There are three throughout the course. The percentage with respect to the global mark of each evaluation test will be 20%.

It is necessary to pass the works and written tests separately so that they can contribute to the average of the final grade.

To opt for the Continuous Assessment system, you must attend at least 80% of the face-to-face activities (practices, technical visits, classes, etc.)

 

2-Global final evaluation test.

The student must opt ​​for this modality when, due to their personal situation, they cannot adapt to the rhythm of work required in the continuous evaluation system, have suspended or want to upload a grade having participated in said evaluation methodology.

The global final evaluation test will have the following group of qualifying activities:

  • Exam: It is carried out in the official calls. This option can always be followed even though the student has used the continuous assessment system. (50% of the final grade).
  • The assignments, practical exercises, solution to proposed problems, questionnaires, etc., that have not been carried out during the course, and can be delivered in a new version on the day of the call. (50% of the final grade).

4. Methodology, learning tasks, syllabus and resources

4.1. Methodological overview

The subject is strongly based on practice, so it has many practical works in class.

The organization of teaching will be carried out using the following steps:

  • Lectures: Theoretical activities carried out mainly through exposition by the teacher, where the theoretical supports of the subject are displayed, highlighting the fundamental, structuring them in topics and or sections, interrelating them.
  • Practice Sessions: The teacher resolves practical problems or cases for demonstrative purposes. This type of teaching complements the theory shown in the lectures with practical aspects.
  • Laboratory Workshop: The lecture group is divided up into various groups, according to the number of registered students, in order to make up smaller sized groups.
  • Individual Tutorials: Those carried out giving individual, personalized attention with a teacher from the department. Said tutorials may be in person or online.

The approach, methodology and assessment of this guide are intended to be the same for any teaching scenarios. They will be adapted to the social-health situation at any particular time, as well as to the instructions given by the authorities concerned.

Further information regarding the course will be provided on the first day of class.

4.2. Learning tasks

Face-to-face generic activities:

  • Theory Classes: The theoretical concepts of the subject are explained and illustrative examples are developed as a support to the theory when necessary.
  • Practical Classes: Problemas and practical classes are carried out, complementary to the theoretical concepts studied.
  • Laboratory Workshop: This work is tutored by a teacher, in groups of no more than 20 students.

Generic non-class activities

  • Study and understanding of the theory taught in the lectures.
  • Understanding and assimilation of the problems and practical classes solved in the practical classes.
  • Solving proposed problems, project, etc.
  • Preparation of laboratory workshops, preparation of summaries and reports.
  • Preparation of the written tests for continuous assessment and final exams.

4.3. Syllabus

The course program is structured around two complementary content components:

  • Theorists.
  • Practical.

Theoretical Contents:

  1. Introduction to concurrent programming.
  2. Modeling and analysis of concurrent systems.
  3. The critical section problem.
  4. Traffic lights.
  5. Monitors.
  6. Introduction to distributed programming.
  7. Coordination based on spaces of tuples.
  8. Distributed algorithms.
  9. Introduction to real time systems.
  10. Introduction to event driven systems.

Practical contents:

Each topic discussed in the previous section has associated practices in this regard. As the topics are developed, these practices will be raised, either in class or through the Moodle platform.

4.4. Course planning and calendar

The subject has 6 ECTS credits, which represents 150 hours of student work in the subject during the trimester, in other words, 10 hours per week for 15 weeks of class.

A summary of a weekly timetable guide can be seen in the following table.

  • 1 hour of lectures
  • 3 hour of laboratory workshops
  • 6 hours of other activities

Nevertheless, the previous table can be shown in greater detail, taking into account the following overall distribution:

  • 15 hours of lectures.
  • 41 hours of laboratoy workshop.
  • 4 hours of wirtten assessment tests, two hours per test.
  • 45 hours of exercices and tutelated work, divided up the 15 weeks of the second semester.
  • 45 hours of personal study, divided up the 15 weeks of the second semester.

There is a tutorial calendar timetable set by the teacher taht can be requested by the students who want a tutorial.

4.5. Bibliography and recommended resources

http://psfunizar10.unizar.es/br13/egAsignaturas.php?codigo=29520


Curso Académico: 2022/23

625 - Graduado en Ingeniería de Datos en Procesos Industriales

29520 - Programación paralela


Información del Plan Docente

Año académico:
2022/23
Asignatura:
29520 - Programación paralela
Centro académico:
175 - Escuela Universitaria Politécnica de La Almunia
Titulación:
625 - Graduado en Ingeniería de Datos en Procesos Industriales
Créditos:
6.0
Curso:
2
Periodo de impartición:
Segundo semestre
Clase de asignatura:
Obligatoria
Materia:
---

1. Información Básica

1.1. Objetivos de la asignatura

En esta asignatura el alumno aprenderá a enfrentarse al diseño de programas en los que un conjunto de procesos deben sincronizarse, ya sea mediante mecanismos de memoria compartida como a través de redes de comunicaciones, llegando a poder razonar sobre la corrección de la solución propuesta.

Estos planteamientos y objetivos están alineados con los siguientes Objetivos de Desarrollo Sostenible (ODS) de la Agenda 2030 de Naciones Unidas (https://www.un.org/sustainabledevelopment/es/), de tal manera que la adquisición de los resultados de aprendizaje de la asignatura proporciona capacitación y competencia para contribuir en cierta medida a su logro:

  • Objetivo 7: Energía asequible y no contaminante.
    • Meta 7.3  De aquí a 2030, duplicar la tasa mundial de mejora de la eficiencia energética.

  • Objetivo 8: Trabajo decente y crecimiento económico.
    • Meta 8.2 Lograr niveles más elevados de productividad económica mediante la diversificación, la modernización tecnológica y la innovación, entre otras cosas centrándose en los sectores con gran valor añadido y un uso intensivo de la mano de obra.

    • Meta 8.4. Mejorar progresivamente, de aquí a 2030, la producción y el consumo eficientes de los recursos mundiales y procurar desvincular el crecimiento económico de la degradación del medio ambiente, conforme al Marco Decenal de Programas sobre modalidades de Consumo y Producción Sostenibles, empezando por los países desarrollados.

  • Objetivo 9: Industria, innovación e infraestructuras.
    • Meta 9.1: Desarrollar infraestructuras fiables, sostenibles, resilientes y de calidad, incluidas infraestructuras regionales y transfronterizas, para apoyar el desarrollo económico y el bienestar humano, haciendo especial hincapié en el acceso asequible y equitativo para todos.

    • Meta 9.5 Aumentar la investigación científica y mejorar la capacidad tecnológica de los sectores industriales.

    • Meta 9.c Aumentar significativamente el acceso a la tecnología de la información y las comunicaciones.

1.2. Contexto y sentido de la asignatura en la titulación

Programación Paralela es una asignatura de 2º curso que aparece a continuación de la asignatura "Estructura de Datos y Algoritmos" (2º curso, 1º semestre).

Es una asignatura obligatoria que se encuentra dentro del módulo de Procesado de Datos, en la materia "Algoritmos y Datos", junto a las asignaturas de "Programación""Estructura de Datos y Algoritmos".

1.3. Recomendaciones para cursar la asignatura

El alumno que curse esta asignatura ha de contar con una formación robusta en programación, siendo muy recomendable haber superado la asignatura "Estructuras de Datos y Algoritmos".

2. Competencias y resultados de aprendizaje

2.1. Competencias

Al superar la asignatura, el alumno habrá adquirido las siguientes competencias:

  • CB2 - Que los estudiantes sepan aplicar sus conocimientos a su trabajo o vocación de una forma profesional y posean las competencias que suelen demostrarse por medio de la elaboración y defensa de argumentos y la resolución de problemas dentro de su área de estudio.
  • CG03 - Aplicar técnicas para la adquisición, gestión y tratamiento de datos en la Ingeniería.
  • CG05 - Resolver problemas tecnológicos que puedan plantearse en la Ingeniería de datos.
  • CT01 - Trabajar cooperativamente asumiendo y respetando el rol de los diferentes miembros del equipo.
  • CT05 - Comunicación de resultados de manera efectiva.
  • CT07 - Analizar y solucionar problemas de forma autónoma, adaptarse a situaciones imprevistas y tomar decisiones.
  • CE01 - Diseñar e implementar algoritmos en lenguajes de programación de alto nivel, utilizando metodologías actuales.
  • CE14 - Construir los tipos y estructuras de datos más adecuados a la resolución de un problema.

2.2. Resultados de aprendizaje

El estudiante, para superar esta asignatura, deberá demostrar los siguientes resultados...

  • El estudiante terminará con un conocimiento profundo de cuáles son las características específicas de los sistemas concurrentes y distribuidos.
  • Conocerá los problemas generados por el acceso concurrente a datos y recursos, así como las soluciones conceptuales y tecnológicas que se han dado a los mismos.
  • Conocerá las características de los sistemas distribuidos, los retos que plantea y las soluciones que se han planteado para los mismos.
  • Tendrá nociones de qué son los sistemas tiempo real, y sistemas basados en eventos.
  • Conocerá herramientas para el diseño y programación de programas con características concurrentes y/o distribuidas.

2.3. Importancia de los resultados de aprendizaje

Esta materia supone un primer contacto con la programación concurrente y distribuida. Para un Ingeniero de Datos, una base sólida en estos aspectos es imprescindible para poder desenvolverse en el mundo industrial.

3. Evaluación

3.1. Tipo de pruebas y su valor sobre la nota final y criterios de evaluación para cada prueba

El proceso evaluativo incluirá dos tipos de actuación:

  • Un sistema de evaluación continua, que se realizará a lo largo de todo el período de aprendizaje.
  • Una prueba global de evaluación, que refleje la consecución de los resultados de aprendizaje, al término del período de enseñanza.

 

1-Sistema de evaluación continua.

Siguiendo el espíritu de Bolonia, en cuanto al grado de implicación y trabajo continuado del alumno a lo largo del curso, la evaluación de la asignatura contempla el sistema de evaluación continua como el más acorde para estar en consonancia con las directrices marcadas por el nuevo marco del EEES.

El sistema de evaluación continua va a contar con el siguiente grupo de actividades calificables:

  • Trabajos: Los trabajos consistirán en ejercicios prácticos, solución a problemas propuestos, cuestionarios, etc. Se valorarán la corrección y calidad de los resultados. Dichas prácticas se efectuarán en grupos reducidos, en función de la disponibilidad de aulas informáticas. El porcentaje respecto de la nota global de todos estos trabajos será de un 40%.
  • Pruebas evaluatorias: Hay tres a lo largo del curso. El porcentaje respecto de la nota global de cada prueba evaluatoria será de un 20%.

Es necesario superar por separado los trabajos y las pruebas evaluatorias para que puedan contribuir al promedio de la nota final.

Para optar al sistema de Evaluación Continua se deberá asistir, al menos, a un 80% de las actividades presenciales (prácticas, visitas técnicas, clases, etc.)

 

2-Prueba global de evaluación final.

El alumno deberá optar por esta modalidad cuando, por su coyuntura personal, no pueda adaptarse al ritmo de trabajo requerido en el sistema de evaluación continua, haya suspendido o quisiera subir nota habiendo sido partícipe de dicha metodología de evaluación.

La prueba global de evaluación final va a contar con el siguiente grupo de actividades calificables:

  • Examen: Se realiza en las convocatorias oficiales. Siempre se podrá seguir esta opción a pesar de que el alumno haya usado el sistema de evaluación continua. (50% de la nota final).
  • Los trabajos, ejercicios prácticos, solución a problemas propuestos, cuestionarios, etc, que no se hayan entregado durante el curso y que pueden entregarse en una nueva versión el día de la convocatoria. (50% de la nota final).

4. Metodología, actividades de aprendizaje, programa y recursos

4.1. Presentación metodológica general

La asignatura es eminentemente práctica, por tanto se ha planteado con una fuerte carga práctica tanto de elaboración de problemas en clase como realizando prácticas en el aula. También hay una parte teórica.

La organización de la enseñanza se llevará a cabo mediante estos pasos:

  • Clases de teoría: Actividades llevadas a cabo mediante la exposición del profesor, donde se muestran los conceptos de la asignatura, resaltando los fundamentos, estructurados en secciones, e interrelacionando unos con otros.
  • Clases prácticas: El profesor resuelve problemas prácticos o casos con propósitos demostrativos. Este tipo de enseñanza complementa la teoría mostrada en las clases con aspectos prácticos.
  • Sesiones de laboratorio: El grupo de la asignatura se divide en varios grupos de alumnos, de acuerdo con el número de alumnos matriculados, para conseguir grupos de tamaño pequeño.
  • Tutorías individuales: Llevadas a cabo de manera individual, con atención personalizada por parte de un profesor del departamento. Las tutorías pueden ser en persona y también online.

El planteamiento, metodología y evaluación de esta guía está preparado para ser el mismo en cualquier escenario de docencia. Se ajustarán a las condiciones socio-sanitarias de cada momento, así como a las indicaciones dadas por las autoridades competentes.

El primer día de clase se proporcionará más información acerca de la organización de la asignatura.

4.2. Actividades de aprendizaje

Actividades genéricas presenciales:

  • Clases teóricas: Se explicarán los conceptos teóricos de la asignatura y se desarrollarán ejemplos prácticos ilustrativos como apoyo a la teoría cuando se crea necesario.
  • Clases prácticas: Se realizarán problemas y casos prácticos como complemento a los conceptos teóricos estudiados.
  • Prácticas de laboratorio: Los alumnos serán divididos en varios grupos de no más de 20 alumnos/as, estando tutorizados por el profesor.

Actividades genéricas no presenciales

  • Estudio y asimilación de la teoría expuesta en las clases magistrales.
  • Comprensión y asimilación de problemas y casos prácticos resueltos en las clases prácticas.
  • Resolución de problemas propuestos, proyecto, etc.
  • Preparación de las prácticas de laboratorio, elaboración de los guiones e informes correspondientes.
  • Preparación de las pruebas escritas de evaluación continua y exámenes finales.

4.3. Programa

El programa de la asignatura se estructura en torno a dos componentes de contenidos complementarios:

  • Teóricos.
  • Prácticos.

Contenidos Teóricos:

  1.     Introducción a la programación concurrente.
  2.     Modelado y análisis de sistemas concurrentes.
  3.     El problema de la sección crítica.
  4.     Semáforos.
  5.     Monitores.
  6.     Introducción a la programación distribuida.
  7.     Coordinación basada en espacios de tuplas.
  8.     Algoritmos distribuidos.
  9.     Introducción a los sistemas de tiempo real.
  10.     Introducción a los sistemas dirigidos por eventos.

Contenidos prácticos:

Cada tema expuesto en la sección anterior, lleva asociadas prácticas al respecto. Conforme se desarrollen los temas se irán planteando dichas prácticas, bien en clase o mediante la plataforma Moodle.

4.4. Planificación de las actividades de aprendizaje y calendario de fechas clave

La asignatura consta de 6 créditos ECTS, lo cual representa 150 horas de trabajo del alumno/a en la asignatura durante el semestre, es decir, 10 horas semanales durante 15 semanas lectivas.

Un resumen de la distribución temporal orientativa de una semana lectiva es el siguiente:

  • 1 hora de clases magistrales
  • 3 horas de prácticas de laboratorio
  • 6 horas de otras actividades

No obstante la tabla anterior podrá quedar más detallada, teniéndose en cuenta la distribución global siguiente:

  • 15 horas de clase magistral.
  • 41 horas de prácticas de laboratorio.
  • 4 horas de pruebas evaluatorias escritas, a razón de dos horas por prueba.
  • 45 horas de ejercicios y trabajos tutelados, repartidas a largo de las 15 semanas de duración del semestre.
  • 45 horas de estudio personal, repartidas a lo largo de las 15 semanas de duración del semestre.

 

Existe un cronograma orientativo preparado por el profesor que puede ser solicitado por los estudiantes que lo deseen.

Las fechas de los exámenes finales serán las publicadas de forma oficial en https://eupla.unizar.es

4.5. Bibliografía y recursos recomendados

http://psfunizar10.unizar.es/br13/egAsignaturas.php?codigo=29520